/*
* @Author: 窦子滨<zibin_5257@163.com>
* @Date: 2019-11-29 15:50
 */
package main

import (
	"gitee.com/lanfengye2002/base"
	"gitee.com/lanfengye2002/base/common"
	"sync"
)

var (
	number int=0 //抽奖顺序号
	usersAllList     []string   //读取配置文件中的全部名单 全局不变
	alreadyList      []string   //已经参加抽奖的人员名单，初始化从文件加载，中奖会增加人员
	userlist         []string   //实际参与抽奖的名单 动态改变 会移除已中奖人员
	log              base.LogIF //日志记录组件
	mutexUserlist    sync.Mutex //实际参与抽奖名单锁
	mutexAlreadylist sync.Mutex //已经参加抽奖人员名单锁
)

//抽奖随机返回数据格式
type returnRandData struct {
	Data         []string `json:"data"`         //中奖名单数据
	Surplus      int      `json:"surplus"`      //剩余未中奖人数
	Surplus_data []string `json:"surplus_data"` //未中奖人员名单
	AlreadyNum   int      `json:"already_num"`  //已中奖人数
	Err          int      `json:"err"`          //错误码 1-错误 0-没有错误
	ErrMsg       string   `json:err_msg`        //错误说明
}

//返回的抽奖系统初始化数据
type returnData struct {
	Data         []string `json:"data"` //所有参与抽奖人员名单
	Surplus_data []string `json:"surplus_data"`
	Sum          int      `json:"sum"`         //总参与人数
	Ssum         int      `json:"ssum"`        //过滤已抽奖的人数
	AlreadyNum   int      `json:"already_num"` //已中奖人数
}

//返回列表数据结构体
type returnListData struct {
	Data []string `json:"data"` //数据列表
	Num  int      `json:"num"`  //数量
}

func init() {
	log = base.NewLog(common.PathHandle("logs/milogs.txt"), 0, true)
	log.SetLogger("console", "")
	log.Info("数据初始化")
	//初始化抽奖名单
	readUsersList()
	//初始化已抽奖名单
	readAlreadyList()
	//在抽奖名单中去掉已抽奖人员
	handleMingdan()
}
